echo和Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数 |
您所在的位置:网站首页 › Linux脚本使用echo $ › echo和Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数 |
2019独角兽企业重金招聘Python工程师标准>>> 功能说明:显示文字。 语 法:echo [-ne][字符串]或 echo [--help][--version] 补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开,并在最后加上换行号。 参 数:-n 不要在最后自动换行 -e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出: \a 发出警告声; \b 删除前一个字符; \c 最后不加上换行符号; \f 换行但光标仍旧停留在原来的位置; \n 换行且光标移至行首; \r 光标移至行首,但不换行; \t 插入tab; \v 与\f相同; \\ 插入\字符; \nnn 插入nnn(八进制)所代表的ASCII字符; --help 显示帮助 --version 显示版本信息 每一个shell支持的echo指令可能都不太相同。 -n 不输出最后的\n -e解释转义字符 -E不解释转义字符 示例1:输入一行文本并且在显示在标准输出上 xc@xc-HP-Pavilion-dv4-Notebook-PC:~/workspace/filetype$ echo Welcome to Linux world Welcome to Linux world 示例2:输出一个声明的变量值 xc@xc-HP-Pavilion-dv4-Notebook-PC:~/workspace/filetype$ x=13 xc@xc-HP-Pavilion-dv4-Notebook-PC:~/workspace/filetype$ echo the value of x=$x the value of x=13 示例3:使用"\b"选项‘-e‘后带上'\b'会删除字符间的所有空格。 注意: Linux中的选项‘-e‘扮演了转义字符反斜线的翻译器。 $ echo -e "Tecmint \bis \ba \bcommunity \bof \bLinux \bNerds" TecmintisacommunityofLinuxNerds 示例4:使用"\n"选项‘-e‘后面的带上‘\n’行会在遇到的地方作为新的一行 $ echo -e "Tecmint \nis \na \ncommunity \nof \nLinux \nNerds" TecmintisacommunityofLinuxNerds 5. 使用‘\t‘选项‘-e‘后面跟上‘\t’会在空格间加上水平制表符。 $ echo -e "Tecmint \tis \ta \tcommunity \tof \tLinux \tNerds" Tecmintis a community of LinuxNerds 6. 也可以同时使用换行‘\n‘与水平制表符‘\t‘ $ echo -e "\n\tTecmint \n\tis \n\ta \n\tcommunity \n\tof \n\tLinux \n\tNerds" TecmintisacommunityofLinuxNerds 7. 使用‘\v‘选项-e‘后面跟上‘\v’会加上垂直制表符。 $ echo -e "\vTecmint \vis \va \vcommunity \vof \vLinux \vNerds" TecmintisacommunityofLinuxNerds 8. 也可以同时使用换行‘\n‘与垂直制表符‘\v‘ $ echo -e "\n\vTecmint \n\vis \n\va \n\vcommunity \n\vof \n\vLinux \n\vNerds" Tecmint is a community of Linux Nerds 9. 使用‘\r‘选项‘-e‘后面跟上‘\r’来指定输出中的回车符。(LCTT 译注:会覆写行开头的字符) $ echo -e "Tecmint \ris a community of Linux Nerds" is a community of LinuxNerds 10. 使用‘\c‘选项-e‘后面跟上‘\c’会抑制输出后面的字符并且最后不会换新行。 $ echo -e "Tecmint is a community \cof Linux Nerds" Tecmintis a community @tecmint:~$ 11. ‘-n‘会在echo完后不会输出新行 $ echo -n "Tecmint is a community of Linux Nerds"Tecmintis a community of LinuxNerds@tecmint:~/Documents$ 12. 使用‘\a‘选项‘-e‘后面跟上‘\a’选项会听到声音警告。 $ echo -e "Tecmint is a community of \aLinux Nerds"Tecmintis a community of LinuxNerds 13. 使用echo命令打印所有的文件和文件夹(ls命令的替代) $ echo * 103.odt103.pdf104.odt104.pdf105.odt105.pdf106.odt106.pdf107.odt107.pdf108a.odt 108.odt108.pdf109.odt109.pdf110b.odt 110.odt110.pdf111.odt111.pdf112.odt112.pdf113.odt linux-headers-3.16.0-customkernel_1_amd64.deb linux-image-3.16.0-customkernel_1_amd64.deb network.jpeg 14. 打印制定的文件类型比如,让我们假设你想要打印所有的‘.jpeg‘文件,使用下面的命令。 $ echo *.jpeg network.jpeg 15. echo可以使用重定向符来输出到一个文件而不是标准输出 $ echo "Test Page"> testpage ## Check Contentavi@tecmint:~$ cat testpageTestPage echo 选项列表 选项描述-n不输出末尾的换行符。-e启用反斜线转义。\b退格\\反斜线\n新行\r回车\t水平制表符\v垂直制表符 echo+shell中的特殊变量变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。 例如,$ 表示当前Shell进程的ID,即pid,看下面的代码: xc@xc-HP-Pavilion-dv4-Notebook-PC:~/workspace/filetype$ echo $$ 15415 变量含义$0当前脚本的文件名$n传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。$#传递给脚本或函数的参数个数。$*传递给脚本或函数的所有参数。$@传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。$?上个命令的退出状态,或函数的返回值。$$当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。 命令行参数运行脚本时传递给脚本的参数称为命令行参数。命令行参数用 $n 表示,例如,$1 表示第一个参数,$2 表示第二个参数,依次类推。 请看下面的代码: 建立一个test.sh文件,写入以下内容: 1 #!/bin/bash 2 echo "File Name: $0" 3 echo "First Parameter : $1" 4 echo "First Parameter : $2" 5 echo "Quoted Values: $@" 6 echo "Quoted Values: $*" 7 echo "Total Number of Parameters : $#"然后chmod +x test.sh改变文件的权限,运行结果: xc@xc-HP-Pavilion-dv4-Notebook-PC:~/workspace/filetype$ vim test.sh xc@xc-HP-Pavilion-dv4-Notebook-PC:~/workspace/filetype$ ./test.sh XC 666 File Name: ./test.sh First Parameter : XC First Parameter : 666 Quoted Values: XC 666 Quoted Values: XC 666 Total Number of Parameters : 2
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |